package com.chenyuxin.ilp.service.file;

import com.chenyuxin.ilp.model.dto.file.AddFileMistakeDto;
import com.chenyuxin.ilp.model.dto.file.AddFolderMistakeDto;
import com.chenyuxin.ilp.model.pojo.Result;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

public interface FileMistakeService {
    /**
     * 创建错题文件夹
     * @param addFolderMistakeDto 文件夹名称
     * @param userId 用户id
     * @return result
     */
    Result addMistakeFolder(AddFolderMistakeDto addFolderMistakeDto, String userId);

    /**
     * 添加错题文件
     * @param folderId 文件夹id
     * @param file 文件
     * @param userId 用户id
     * @return result
     */
    Result addMistakeFile(Long folderId, MultipartFile file, String userId);

    /**
     * 删除错题文件夹
     * @param folderId 文件夹id
     * @param userId 用户id
     * @return result
     */
    Result deleteMistakeFolder(Long folderId, String userId);

    /**
     * 删除错题文件
     * @param fileId 文件id
     * @param userId 用户id
     * @return result
     */
    Result deleteMistakeFile(Long fileId, String userId);

    /**
     * 预览错题文件
     * @param fileId 文件id
     * @param userId 用户id
     * @return 预览文件url
     */
    Result previewMistakeFile(Long fileId, String userId);

    /**
     * 下载错题文件
     * @param userId 用户id
     * @param fileId 文件id
     * @return ResponseEntity
     */
    ResponseEntity<byte[]> downloadMistakeFile(String userId, Long fileId);

    /**
     * 查询错题文件夹
     * @param userId 用户id
     * @return List<FolderMistakeVo>
     */
    Result selectMistakeFolder(String userId);

    /**
     * 查询错题文件
     * @param folderId 文件夹id
     * @param userId 用户id
     * @return List<FileMistakeVo>
     */
    Result selectMistakeFile(Long folderId, String userId);
}
